In a transaction processing environment, installing software is often lengthy, complex, and error prone. The complexity and difficulties increase when the software is installed in an environment with shared storage or a multiple host environment. Such complexities cause significant loss of production capacity during software installation. In such a complex software environment, there is no mechanism that allows for consistent, reliable, verifiable, and resilient software management and installation. When complexities like shared storage and multiple hosts are introduced, software environments are not capable of functioning “non-stop,” meaning they cannot present a level of service from hardware and software with no interruption perceptible to the transaction system end user.
Particular components in a multi-host environment cannot be replaced without taking down the entire system. For example, several copies of a database manager may be running on different hosts, and each copy may use the same shared control file. This shared file must be open and accessible for each copy of the database manager to access it. To update a single copy of the database manager, a lock would have to be put on the shared file during the update. While updating this copy of the database manager, the other copies of the database manager running on other hosts cannot access the shared control file. The conflict with the shared control file in this example, or other conflicts that may arise, may cause some of the database managers to stop processing data, resulting in downtime that affects end users of those database managers.